/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package bomberman.pl.divano.gra;

import bomberman.pl.divano.gra.elementy.*;
import java.util.Random;

/**
 *
 * @author divano
 */
public class Plansza implements STAŁE{
    private Element plansza[][][];
    
    public Plansza(){
        plansza = new Element[20][20][STAŁE.WARSTWY];

		String strPlansza =		"sssssssssssssss" +
								"s......pp..p..s" +
								"s.s.s.s.s.s.s.s" +
								"s..p..p.ppp.p.s" +
								"s.s.s.s.sps.sps" +
								"sp.ppp...p...ps" +
								"s.s.sps.sps.s.s" +
								"spp..p.ppp.p..s" +
								"sps.sps.s.sps.s" +
								"s.pp.p..p..p..s" +
								"s.s.sps.s.sps.s" +
								"sp.ppp..ppp..ps" +
								"s.s.s.s.s.s.s.s" +
								"s...ppp..p.p..s" +
								"sssssssssssssss" ;
		int pola=0;
        for(int i=0; i<STAŁE.POLEX; i++){
            for(int j=0; j<STAŁE.POLEY; j++, pola++){
                if(strPlansza.charAt(pola)=='s') {		// tu bedzie sciana niezniszczalna

					for (int k=0; k<STAŁE.WARSTWY; k++) {
						if (k==0) {
							plansza[i][j][0] = new cScianaTrwala();
						}
						else plansza[i][j][k] = new cPustePole();
					}
				}
				if(strPlansza.charAt(pola)=='.') {		// tu bedzie puste pole
					for (int k=0; k<STAŁE.WARSTWY; k++) {
						plansza[i][j][k] = new cPustePole();
					}
				}
				if(strPlansza.charAt(pola)=='p') {		// tu bedzie sciana zniszczalna
					plansza[i][j][0] = new cPustePole();				//sciana trwala
					plansza[i][j][1] = new cPustePole();				//pustepole
					/*Random generator = new Random();
					int pierwszy = generator.nextInt();
					int drugi = generator.nextInt();*/
					/*if (pierwszy>drugi) {	// powerup bedzie
						generator = new Random();
						pierwszy = generator.nextInt();
						drugi = generator.nextInt();
						if (pierwszy>drugi) {
							plansza[i][j][2] = new cPowerUp(true);				//powerup
						}
						else {
							plansza[i][j][2] = new cPowerUp(false);				//powerup
						}

						plansza[i][j][3] = new cScianaKruszaca(i,j);			//sciana kruszaca
						plansza[i][j][4] = new cScianaZniszczalna(true);	//sciana zniszczalna
					}
					else {	*/	// nie bedzie
						plansza[i][j][2] = new cPustePole();				//powerup
						plansza[i][j][3] = new cScianaKruszaca(i,j);			//sciana kruszaca
						plansza[i][j][4] = new cScianaZniszczalna(false);	//sciana zniszczalna
					//}
					plansza[i][j][5] = new cPustePole();				//ogien
					plansza[i][j][6] = new cPustePole();				//bomba

				}
            }
        }
    }

    public Element getElement(int x, int y, int z){
        if(x < STAŁE.POLEX && y<STAŁE.POLEY && z<STAŁE.WARSTWY){
            return plansza[x][y][z];
        }else{
            return null;
        }
    }

    public void setElement(int x, int y, int z, Element obj){
        plansza[x][y][z] = obj;
    }

    @Override 
    public String toString(){
        String napis;
        napis = new String();
        String znak = new String();
        for(int i=0; i<20; i++){
            for(int j=0; j<20; j++){

                for(int k=0; k<5; k++){
                    if(plansza[i][j][k].toString().equals(".")){
                        znak = plansza[i][j][k].toString();
                    }
                }
                napis.concat(znak);
            }
            napis.concat("\n");
        }
        return napis;
    }
}
